package cn.biplam.common.bean.md;

import cn.biplam.common.bean.Bean;
import cn.biplam.common.client.DataFilter;
import cn.biplam.common.wrapper.ErrorMessage;

/**
 * 外键字段关系操作
 */
public abstract class MdFkRelationTableCol extends Bean {
	
	/**
	 * 取外键关联表列关联id
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getReColId() throws ErrorMessage;

	/**
	 * 取外键关联表关联id
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getReId() throws ErrorMessage;

	/**
	 * 列外键关联中 主表列id
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getMainTableColId() throws ErrorMessage;

	/**
	 * 列外键关联中 外键表列id
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getForeingTableColId() throws ErrorMessage;

	/**
	 * 更新记录集
	 * @param filter 过滤器
	 * @throws ErrorMessage
	 */
	public abstract String update(DataFilter filter) throws ErrorMessage;

	/**
	 * 插入记录集
	 * @param filter 过滤器
	 * @throws ErrorMessage
	 */
	public abstract String insert(DataFilter filter) throws ErrorMessage;

	/**
	 * 根据列关系id删除记录列关联信息
	 * @throws ErrorMessage
	 */
	public abstract void delete() throws ErrorMessage;

	/**
	 * 判断对象信息是否存在
	 * @return
	 */
	public abstract boolean exist();
	
	/**
	 * 新建实例
	 * @param classParams 类参数
	 * @return 实例
	 * @throws ErrorMessage
	 */
	public  static MdFkRelationTableCol getNewInstance(Object... classParams) throws ErrorMessage{
		return (MdFkRelationTableCol)get(MdFkRelationTableCol.class.getSimpleName(), classParams);
	}
	
	/**列关系id 字段名*/
	public abstract String getCREID();
	
	/** 关系id 字段名 */
	public abstract String getREID();
	
	/** 主表列id 字段名 */
	public abstract String getMain_Table_Column_ID();
	
	/** 外键表列id 字段名 */
	public abstract String getForeign_Table_Column_ID();

}